package com.cloudbroker.bcs.platform.dav.bizapi.t2service.viewpoint;

import com.cloudbroker.bcs.common.entity.HSBCPSBackVO;
import com.cloudbroker.bcs.platform.dav.bizapi.constants.IFSFunctionIdsNew.IFSDavViewPointFuncIds;
import com.cloudbroker.bcs.platform.dav.bizapi.service.base.vo.HSBCPSVO;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.result.*;
import com.cloudbroker.bcs.platform.dav.bizapi.service.viewpoint.vo.*;
import com.hundsun.jresplus.remoting.impl.annotation.Service;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceModule;
import com.hundsun.jresplus.remoting.impl.annotation.ServiceParam;

@ServiceModule
public interface BrokerT2BizService {
    
    /**
     * 自媒体列表
     * @param form
     * @return
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_SELF_MEDIA_LIST, desc = "自媒体列表")
    public SelfMediaDavList funcSelfMediaList(SelfMediaListForm form);
    
    /**
     * 观点列表
     * */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_LIST_BY_DAV, desc = "观点列表")
    public ViewpointDavList funcViewpointListByDav(@ServiceParam("param") ViewpointListForm param);

    /**
     * 大V观点信息列表
     * */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_DETAIL_LIST_BY_DAV, desc = "大V观点信息列表")
    public ViewpointDetailDavList funcBrokerViewpointDetailList(@ServiceParam("param") ViewpointDetailListForm param);

    /**
     * 大V查询观点内容
     * */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_CONTENT_BY_BROKER, desc = "大V查询观点内容")
    public ViewpointContent funcViewpointContent(@ServiceParam("param") ViewPointIdForm param);

    /**
     * 获取租户观点公开配置
     * */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_PUBLIC_GET, desc = "获取租户观点公开配置")
    public ViewpointPublicData funcViewpointPublicGet(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * DAVB0102 大V观点信息保存
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_BROKER_VIEWPOINT_SAVE, desc = "大V观点信息保存")
    public HSBCPSBackVO brokerViewpointSave(@ServiceParam("param") ViewpointSaveForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_TOP, desc = "大V观点置顶")
    public HSBCPSBackVO funcViewpointTop(@ServiceParam("param") ViewPointTopForm param);
    
    /**
     * DAVB0103 大V观点信息删除
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_BROKER_VIEWPOINT_DEL, desc = "大V观点信息删除")
    public HSBCPSBackVO brokerViewpointDel(@ServiceParam("param") ViewPointIdForm param);
    
    /**
     * DAVB0110 大V观点清空
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_BROKER_VIEWPOINT_CLEAR, desc = "大V观点清空")
    public HSBCPSBackVO brokerViewpointClear(@ServiceParam("param") HSBCPSVO param);
    
    /**
     * DAVB0104 观点评论查询
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_COMMENT_LIST, desc = "观点评论查询")
    public ViewpointCommentDavResult viewpointCommentList(@ServiceParam("param") ViewpointCommentForm param);
    
    /**
     * DAVB0105 大V观点评论回复
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_COMMENT_REPLAY_SAVE, desc = "大V观点评论回复")
    public CommentSaveResult commentReplaySave(@ServiceParam("param") CommentReplayForm param);
    
    /**
     * DAVB0106 大V观点评论删除
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_COMMENT_DEL, desc = "大V观点评论删除")
    public CommentSaveResult viewpointCommentDel(@ServiceParam("param") CommentReplayIdForm param);
    
    /**
     * DAVB0107 大V增加观点标签
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_TAG_SAVE, desc = "大V增加观点标签")
    public HSBCPSBackVO saveNewTag(@ServiceParam("param") ViewpointTagForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_TAG_UPDATE, desc = "修改观点标签")
    public HSBCPSBackVO updateNewTag(@ServiceParam("param") ViewpointTagUpdateForm param);
    
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_TAG_SORT, desc = "观点标签排序")
    public HSBCPSBackVO sortNewTag(@ServiceParam("param") ViewpointTagSortForm param);
    
    /**
     * DAVB0109 删除大V标签
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_TAG_DEL, desc = "删除大V标签")
    public HSBCPSBackVO brokerTagDel(@ServiceParam("param") ViewpointTagIdForm param);
    
    /**
     * DAVB0108 查询大V标签
     */
    @Service(functionId = IFSDavViewPointFuncIds.FUNC_VIEWPOINT_TAG_LIST, desc = "查询大V标签")
    public ViewpointTagListResult brokerTagList(@ServiceParam("param") HSBCPSVO param);

    
}
